The background of the present disclosure is hereinafter introduced with the discussion of techniques relating to its context. However, even when this discussion refers to documents, acts, artifacts and the like, it does not suggest or represent that the discussed techniques are part of the prior art or are common general knowledge in the field relevant to the present disclosure.
The management of computing systems plays a key role in several contexts, and especially in large organizations having a high number of client computing machines (or simply clients) to be managed (for example, up to some hundreds or thousands). For this purpose, various resource management applications are available for facilitating the management of the clients from a server computing machine (or simply server) of the computing system; a commercial example of these management applications is IBM Endpoint Manager (IEM) by IBM Corporation (trademarks).
The resource management applications are generally based on an ad-hoc deployment infrastructure that facilitates a deployment of management data from the server on the clients (such as new versions of software products to be installed thereon). For example, some of the clients may operate as relays for other (child) clients depending thereon; this hierarchical organization of the clients may be multi-tier, with the child clients that in turn operate as relays for further child clients depending thereon. Each relay caches the management data downloaded from the server temporarily for its supply to the respective child clients directly (without the need of downloading it again from the server). The relays allow reducing traffic on a corresponding communication network, and they may provide back-up communication paths among the clients and the server (in case of either malfunctioning or overload of their normal communication paths).
The definition of the deployment infrastructure for managing the computing system may be quite complex. Moreover, the computing system may change dynamically over time; therefore, a deployment infrastructure that is adequate at an initial set-up of the computing system may become inadequate later on. For example, a relay dimensioned to serve a predetermined number of child clients may not work properly if the number of child clients increases excessively. This is exacerbated when the clients are mobile devices (for example, smart-phones), since they may change the corresponding relays continuously according to their position.
Elastic scaling techniques are known in the field of cloud computing environments to improve their effectiveness. For example, US-A-20120311011 (the entire disclosure of which is herein incorporated by reference) describes a cloud configuration system that provides the ability to dynamically reconfigure a set of computing resources to define a cloud into multiple separate logical cloud instances (based on a new configuration for datacenter resources comprising different roles for various servers, different network configuration, different relationships with other datacenters and/or cloud instances).
In the context of the management of computing systems, WO-A-2007017296 (the entire disclosure of which is herein incorporated by reference) describes a management system which defines and applies a federated set of actions, resulting from the combination of input data gathered from the different components; the data gathered results into a self-optimized application system, through actions taken at different levels (comprising a first level concerning application such as job priorities and job reorganization, a second level concerning system within a predefined and assigned set of resource and a third level concerning the global architecture by extending the resource allocated to the applications from a shared pool and adding resource dynamically to the application system infrastructure according to needs).
Therefore, the inadequacy of the deployment infrastructure might be restored by increasing the computing resources of the clients accordingly. For example, when too many child clients depend on a relay that may not serve them efficiently any longer, additional computing resources (for example, processing power, working memory) might be provided to the relay.
However, this involves a human intervention for providing the additional computing resources to the clients; at the same time, the operation of the involved clients has to be stopped during the provision of their additional computing resources. All of the above adversely affects the performance of the computing system. Moreover, these additional computing resources increase the costs of the computing system.